package com.yida.gwj.expend.outside.domain.dto;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.gwj.expend.outside.domain.GwjMaintenanceFundsBusinessBuild;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 使用申请业务详细信息DTO
 *
 * @author wkz
 * @date 2023/03/15
 */
@ApiModel(description = "使用申请业务详细信息DTO")
public class GetBusinessDetailDTO {
    private static final long serialVersionUID = 1L;
    /**
     * 业务ID(yw_id)
     */
    @ApiModelProperty(value = "业务ID(yw_id)")
    private Long bizId;

    /**
     * 业务标识（cate_id）
     */
    @ApiModelProperty(name = "业务标识")
    private Integer bizFlagId;

    /**
     * 业务步骤ID
     */
    @ApiModelProperty(value = "业务步骤ID")
    private Long stepId;

    @ApiModelProperty(value = "联系电话")
    private String phone;

    @ApiModelProperty(value = "联系人(lianxiren)")
    private String contacts;

    @ApiModelProperty(value = "业务名称")
    private String bizName;

    /**
     * 有效时间(validdate)
     */
    @ApiModelProperty(value = "有效时间(validdate)")
    private Date validDate;

    @ApiModelProperty(value = "小区地址")
    private String address;

    @ApiModelProperty(value = "项目竣工时间(endtime)")
    private Date completedTime;

    @ApiModelProperty(value = "是否显示二次补件信息 0.否 1.是")
    private Integer supplementFlag;
    // 以上在business表 以下在community

    /**
     * 关联基础小区ID
     */
    @ApiModelProperty(value = "关联基础小区ID")
    private Long communityId;

    @ApiModelProperty(value = "开发企业名称")
    private String developmentEnterpriseName;

    @ApiModelProperty(value = "小区名称(name)")
    private String communityName;

    @ApiModelProperty(value = "业委名称(yewei_name)")
    private String ownerCommitteeName;

    // 以下在info

    @ApiModelProperty(value = "申请单位全称(shenqingdanwei_quancheng)")
    private String applicationUnitName;

    /**
     * 维修项目(weixiuxiangmu)
     */
    @ApiModelProperty(value = "维修项目(weixiuxiangmu)")
    private String maintenanceItems;

    /**
     * 维修原因(weixiuyuanyin)
     */
    @ApiModelProperty(value = "维修原因(weixiuyuanyin)")
    private String maintenanceReason;

    /**
     * 申报日期(shenbaoriqi)
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "申报日期(shenbaoriqi)")
    private LocalDate declarationDate;

    /**
     * 工程预算金额(gongchengyusuanjine)
     */
    @ApiModelProperty(value = "工程预算金额(gongchengyusuanjine)")
    private BigDecimal projectBudgetAmount;

    /**
     * 拨款方式：默认为1一次拨付，2为二次拨付
     */
    @ApiModelProperty(value = "拨款方式：默认为1一次拨付，2为二次拨付")
    private Integer appropriationWay;

    /**
     * 施工单位(shigongdanwei)
     */
    @ApiModelProperty(value = "施工单位(shigongdanwei)")
    private String constructionUnit;

    /**
     * 验收方案(yanshoufangan)
     */
    @ApiModelProperty(value = "验收方案(yanshoufangan)")
    private String acceptancePlan;

    /**
     * 开户银行(kaihuyinhang)
     */
    @ApiModelProperty(value = "开户银行(kaihuyinhang)")
    private String bankDeposit;

    /**
     * 收款账号(shoukuanzhanghao)
     */
    @ApiModelProperty(value = "收款账号(shoukuanzhanghao)")
    private String collectionAccount;

    /**
     * 收款单位全称(shoukuandanweiquancheng)
     */
    @ApiModelProperty(value = "收款单位全称(shoukuandanweiquancheng)")
    private String payeeName;

    /**
     * 预算拨款金额(yusuanbochujine)
     */
    @ApiModelProperty(value = "预算拨出金额(yusuanbochujine)")
    private BigDecimal budgetAppropriationAmount;

    /**
     * 第二期款项
     */
    @ApiModelProperty("第二期款项")
    private BigDecimal secondAppropriationAmount;

    /**
     * 决算总金额(juesuanzongjine)
     */
    @ApiModelProperty("决算总金额(juesuanzongjine)")
    private BigDecimal totalSettlementAmount;

    @ApiModelProperty(value = "维修竣工日期")
    private LocalDate repairCompletionDate;

    // 其他表
    /**
     * 关联楼栋数据集合
     */
    @ApiModelProperty(value = "维修楼栋数据集合")
    private List<GwjMaintenanceFundsBusinessBuild> builds;

    /**
     * 步骤名称
     */
    @ApiModelProperty(value = "当前步骤")
    private String stepName;

    /**
     * 流程名称
     */
    @ApiModelProperty(value = "案件流程")
    private String flowName;

    /**
     * 业务小类
     */
    @ApiModelProperty(value = "业务小类")
    private String category;

    /**
     * 文件业务标识
     */
    @ApiModelProperty(value = "文件业务标识")
    private String serverIdentification;

    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "地区Id")
    private String areaId;

    /**
     * 实际分摊金额
     */
    @ApiModelProperty("决算总金额(juesuanzongjine)")
    private BigDecimal actualAllocationAmount;

    /**
     * 银行ID
     * 
     * hmh
     * 
     * 20230710
     */
    private Long bankId;

    /**
     * 决算拨出总金额
     * 
     * hmh
     * 
     * 20230719
     */
    private BigDecimal totalAllocatedSettlementAmount;

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getServerIdentification() {
        return serverIdentification;
    }

    public void setServerIdentification(String serverIdentification) {
        this.serverIdentification = serverIdentification;
    }

    public Integer getSupplementFlag() {
        return supplementFlag;
    }

    public void setSupplementFlag(Integer supplementFlag) {
        this.supplementFlag = supplementFlag;
    }

    public String getStepName() {
        return stepName;
    }

    public void setStepName(String stepName) {
        this.stepName = stepName;
    }

    public String getFlowName() {
        return flowName;
    }

    public void setFlowName(String flowName) {
        this.flowName = flowName;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public Long getCommunityId() {
        return communityId;
    }

    public void setCommunityId(Long communityId) {
        this.communityId = communityId;
    }

    public Integer getBizFlagId() {
        return bizFlagId;
    }

    public void setBizFlagId(Integer bizFlagId) {
        this.bizFlagId = bizFlagId;
    }

    public Long getBizId() {
        return bizId;
    }

    public void setBizId(Long bizId) {
        this.bizId = bizId;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public Long getStepId() {
        return stepId;
    }

    public void setStepId(Long stepId) {
        this.stepId = stepId;
    }

    public String getApplicationUnitName() {
        return applicationUnitName;
    }

    public void setApplicationUnitName(String applicationUnitName) {
        this.applicationUnitName = applicationUnitName;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getBizName() {
        return bizName;
    }

    public void setBizName(String bizName) {
        this.bizName = bizName;
    }

    public String getDevelopmentEnterpriseName() {
        return developmentEnterpriseName;
    }

    public void setDevelopmentEnterpriseName(String developmentEnterpriseName) {
        this.developmentEnterpriseName = developmentEnterpriseName;
    }

    public Date getCompletedTime() {
        return completedTime;
    }

    public void setCompletedTime(Date completedTime) {
        this.completedTime = completedTime;
    }

    public Date getValidDate() {
        return validDate;
    }

    public void setValidDate(Date validDate) {
        this.validDate = validDate;
    }

    public String getMaintenanceItems() {
        return maintenanceItems;
    }

    public void setMaintenanceItems(String maintenanceItems) {
        this.maintenanceItems = maintenanceItems;
    }

    public String getMaintenanceReason() {
        return maintenanceReason;
    }

    public void setMaintenanceReason(String maintenanceReason) {
        this.maintenanceReason = maintenanceReason;
    }

    public LocalDate getDeclarationDate() {
        return declarationDate;
    }

    public void setDeclarationDate(LocalDate declarationDate) {
        this.declarationDate = declarationDate;
    }

    public BigDecimal getProjectBudgetAmount() {
        return projectBudgetAmount;
    }

    public void setProjectBudgetAmount(BigDecimal projectBudgetAmount) {
        this.projectBudgetAmount = projectBudgetAmount;
    }

    public Integer getAppropriationWay() {
        return appropriationWay;
    }

    public void setAppropriationWay(Integer appropriationWay) {
        this.appropriationWay = appropriationWay;
    }

    public String getConstructionUnit() {
        return constructionUnit;
    }

    public void setConstructionUnit(String constructionUnit) {
        this.constructionUnit = constructionUnit;
    }

    public String getAcceptancePlan() {
        return acceptancePlan;
    }

    public void setAcceptancePlan(String acceptancePlan) {
        this.acceptancePlan = acceptancePlan;
    }

    public String getBankDeposit() {
        return bankDeposit;
    }

    public void setBankDeposit(String bankDeposit) {
        this.bankDeposit = bankDeposit;
    }

    public String getCollectionAccount() {
        return collectionAccount;
    }

    public void setCollectionAccount(String collectionAccount) {
        this.collectionAccount = collectionAccount;
    }

    public String getPayeeName() {
        return payeeName;
    }

    public void setPayeeName(String payeeName) {
        this.payeeName = payeeName;
    }

    public String getOwnerCommitteeName() {
        return ownerCommitteeName;
    }

    public void setOwnerCommitteeName(String ownerCommitteeName) {
        this.ownerCommitteeName = ownerCommitteeName;
    }

    public List<GwjMaintenanceFundsBusinessBuild> getBuilds() {
        return builds;
    }

    public void setBuilds(List<GwjMaintenanceFundsBusinessBuild> builds) {
        this.builds = builds;
    }

    public BigDecimal getBudgetAppropriationAmount() {
        return budgetAppropriationAmount;
    }

    public void setBudgetAppropriationAmount(BigDecimal budgetAppropriationAmount) {
        this.budgetAppropriationAmount = budgetAppropriationAmount;
    }

    public BigDecimal getSecondAppropriationAmount() {
        return secondAppropriationAmount;
    }

    public void setSecondAppropriationAmount(BigDecimal secondAppropriationAmount) {
        this.secondAppropriationAmount = secondAppropriationAmount;
    }

    public BigDecimal getTotalSettlementAmount() {
        return totalSettlementAmount;
    }

    public void setTotalSettlementAmount(BigDecimal totalSettlementAmount) {
        this.totalSettlementAmount = totalSettlementAmount;
    }

    public LocalDate getRepairCompletionDate() {
        return repairCompletionDate;
    }

    public void setRepairCompletionDate(LocalDate repairCompletionDate) {
        this.repairCompletionDate = repairCompletionDate;
    }

    public String getAreaId() {
        return areaId;
    }

    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    public BigDecimal getActualAllocationAmount() {
        return actualAllocationAmount;
    }

    public void setActualAllocationAmount(BigDecimal actualAllocationAmount) {
        this.actualAllocationAmount = actualAllocationAmount;
    }

    public Long getBankId() {
        return bankId;
    }

    public void setBankId(Long bankId) {
        this.bankId = bankId;
    }

    public BigDecimal getTotalAllocatedSettlementAmount() {
        return totalAllocatedSettlementAmount;
    }

    public void setTotalAllocatedSettlementAmount(BigDecimal totalAllocatedSettlementAmount) {
        this.totalAllocatedSettlementAmount = totalAllocatedSettlementAmount;
    }

    @Override
    public String toString() {
        return "GetBusinessDetailDTO{" + "bizId=" + bizId + ", bizFlagId=" + bizFlagId + ", stepId=" + stepId + ", phone='" + phone + '\'' + ", contacts='" + contacts + '\'' + ", bizName='" + bizName + '\'' + ", validDate=" + validDate + ", address='" + address + '\'' + ", completedTime=" + completedTime + ", supplementFlag=" + supplementFlag + ", communityId=" + communityId + ", developmentEnterpriseName='" + developmentEnterpriseName + '\'' + ", communityName='" + communityName + '\''
            + ", ownerCommitteeName='" + ownerCommitteeName + '\'' + ", applicationUnitName='" + applicationUnitName + '\'' + ", maintenanceItems='" + maintenanceItems + '\'' + ", maintenanceReason='" + maintenanceReason + '\'' + ", declarationDate=" + declarationDate + ", projectBudgetAmount=" + projectBudgetAmount + ", appropriationWay=" + appropriationWay + ", constructionUnit='" + constructionUnit + '\'' + ", acceptancePlan='" + acceptancePlan + '\'' + ", bankDeposit='" + bankDeposit + '\''
            + ", collectionAccount='" + collectionAccount + '\'' + ", payeeName='" + payeeName + '\'' + ", budgetAppropriationAmount=" + budgetAppropriationAmount + ", secondAppropriationAmount=" + secondAppropriationAmount + ", totalSettlementAmount=" + totalSettlementAmount + ", repairCompletionDate=" + repairCompletionDate + ", builds=" + builds + ", stepName='" + stepName + '\'' + ", flowName='" + flowName + '\'' + ", category='" + category + '\'' + ", serverIdentification='"
            + serverIdentification + '\'' + ", status='" + status + '\'' + ", areaId='" + areaId + '\'' + ", actualAllocationAmount=" + actualAllocationAmount + '}';
    }
}
